//5331
import { isUndef } from './isUndef'
import { each } from './each'
/**
 * 此方法废除
 * 用于创建 extend，extendOwn 和 defaults 等模块
 * dependencies isUndef each types
 * @param {*} keysFn 获取对象键名的函数
 * @param {boolean} defaults boolean=true不对值进行覆盖
 * @returns 目标函数
 */
export function createAssigner (keysFn, defaults) {
  return function (obj) {
    each(arguments, function (src, idx) {
      if (idx === 0) return;
      var keys = keysFn(src);
      each(keys, function (key) {
        if (!defaults || isUndef(obj[key])) obj[key] = src[key];
      });
    });
    return obj;
  };
}